/**
 * Filename: user_shoppingcart.js
 * Author: xhh
 * Decription: 购物车 计算总价
 * Date: 2018.04.04
 */
$(function(){
    // 选中商品
    $("#shopping_cart_list li a").on("click",function () {
        $(this).toggleClass("selected");
        setTotal();
    });
    // 购物车数量加
    $("#shopping_cart_list li .icon-up").on("click",function(){
        numSetTotal($(this),'add');
        
    });
    // 数量减少
    $("#shopping_cart_list li .icon-down").on("click",function () {
        numSetTotal($(this), 'reduce');
    });

    // 修改输入框的数量
    $("#shopping_cart_list li input").keyup(function () {
        // 得到total对象
        var price = parseFloat($(this).parents(".item-num").siblings('.item-total').children("em").text());
        // 判断输入是否为空
        if (parseInt($(this).val()) == "" || undefined || null || isNaN($(this).val())) {
            $(this).val(1);
        }
        // 设置隐藏输入框总价
        $(this).parents(".item-num").siblings(".total-val").val((price * $(this).val()).toFixed(2));
        // 计算总价
        setTotal();
    });


    /**
     * 商品的数量增减以及计算总价
     * @param {*} that 
     * @param {*} flag 
     */
    function numSetTotal(that, flag) {
        var $that = that;
        // 得到total的值(单价)
        var price = parseFloat($that.parents(".item-num").siblings('.item-total').children("em").text());
        // 得到input的值
        var $inputObj = $that.parent('span').siblings('input');
        // 得到input的值
        var num = parseInt($inputObj.val());
        if (num == "" || undefined || null) {
            num = 1;
        }
        if (flag == 'add') {
            num += 1;
        } else {
            // 数量减1
            num -= 1;
            // 如果小于1则等于1
            if (num < 1) {
                num = 1;
            }
        }
        $inputObj.val(num);
        $that.parents(".item-num").siblings(".total-val").val((price * num).toFixed(2));
        setTotal();
    }

    /**
     * 计算总价格
     */
    function setTotal() {
        console.log('222');
        var total = 0;
        $("#shopping_cart_list li").each(function () {
            // 得到每件商品的总价
            if ($(this).children('.item-select').children('a').hasClass('selected')) {
                var onePrice = parseFloat($(this).children('.total-val').val());
                total += onePrice;
            }
        });
        // 设置总价
        $("#total").text(total.toFixed(2));
    }
    setTotal();  
});